Initial commit with working version, still needs to be refined