All functions implemented, no defensive programming