added base interfaces as per assignment doc