Solves Milestone #1 and #2

Also ports nesasary code for things to happen.