initial commit, bunch of copy code from another project, still needs to be cleaned up