finished abstract class with 4 attributes