ATM implementation

-needs testing-