Step 10: complete form abstraction
Step 11: Encapsulate behavior, organize through namespacing