done with java skeleton