initial work, learning RAW INPUT, discovering API, unstable