Code according to research added, not runnable yet, no tests written