Link Refactor

Refactored the linking system so that its more compact and calling the
entry point of the program is easier.