What you are describing here, are the requirements. The implementation, is usually, much, much different.