Core functions work now.
To Do:
Optimization
JavaDoc