Trying to finish type based system