Make product and abstrat class