#5 added Entity and tests