initial commit
adds needed libs
adds completed functionality