added custom Main
removed viewport initialization
custom viewport initialization
handled dipendencies