Made Entity an abstract class

Added lots of features :)