use wildcard type instead of Object on java generics to stop compiler warnings, few other tweaks to stop annoying yellow highlights in intellij