Interface updated. Added factory class.