apps should be sublcasses, not instances