All interface functions working per specs