almost fully functional interface