Created dedicated profile class, moved functionality around