Written in java