started to implement sub-typing solution