correctly fixed issues with the normal implementation
no longer have a main