Changed code to Model View Presenter format
Added outline for registration