Answer to #s 4 and 5, decorator pattern and other design patter(constructor)