made somewhat go idiomatic