First commit: basic framework