baby steps on the actual implementation