initial implementation skeleton
tests skeleton