first four functions are implemented but still need testing!

changed from pre-alpha to alpha :)