refining interface and adding properties