Modify BossWave class interfaces and cosmetic changes

- Modify BossWave interface, check out the public method in BossWave for details
- Change positions of methods to show public methods before private ones
- Add comments of TODO
- Cosmetic changes, such as adding/removing white spaces, use two lines between methods