Initial commit

Finished obtain() method with caching & security checks.