Ain't pretty but it works

Add required functionality works but haven't finished bonus.