refactored and compelted all objectives