updated class structure and added some initial implementation sketch