Refactoring performed + some new usecases declared but not completely implemented