split of behaviors and extending the prototype