initial tests and implementation