interface refactored, but still not complete