let java do most of the things...