cleaed up subclasses