preparation for maven central
make it abstract