Added basic abstract methods + constructor