Made more effecient using extends