[refactoring] Makefile has been added.
[refactoring] Using forward declaration instead including in headers.
[refactoring] Fix gitignore.
[refactoring] Merge answers in one function and negate misleading return value.