project for practicing algorithm, design pattern in java.