First basic implementation + simple tests