First commit. Working but still unstable