added basic abstract