add initial methods to abstract model plus tests