Begin implementing abstract platform

Does ```Api``` generic parameter conform to Rust guidelines? Perhaps, just ```A``` would fit better?