Adding tests + basic architecture