initial code for version 0.5