Added classes but this is a work in progress because it needs to be refactored to work