remove abstract layer which is unnecessary. keep it simple, stupid!