Bug fix: can not invoke super because it will give a cast error,
implementing own logic