applying good programming techniques