implemented multiple inheritance