API improvements (UNTESTED CODE, MIGHT BUG OUT)