added test and entry point