aimed towards full functionality

now works well for everything except multiplication