Straightforward implementation