Implemented features

Implemented features: #2 #3 #4 #5