Hide java implementation types from library users