has more tests needn't be runtime
added two choose one test
updated without signature
migrated away from case class