Commit of a lot of work

Signed-off-by: Levente Kurusa <levex@linux.com>