Formatting and a few more properties
Completed logic without testing, needs debugging now