using soop for inheritance