skeleton solution without DI and Angular